課程資訊
課程名稱
機器學習
Machine Learning 
開課學期
105-2 
授課對象
電機資訊學院  電信工程學研究所  
授課教師
李宏毅 
課號
EE5184 
課程識別碼
921 U2620 
班次
 
學分
4.0 
全/半年
半年 
必/選修
選修 
上課時間
星期四2,3,4,5(9:10~13:10) 
上課地點
明達231 
備註
與林宗男合開
總人數上限:190人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1052EE5184_ 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

你可能已經修過和計算機程式相關的課程,能夠設計程式讓電腦處理一些簡單的問題,但是你有沒有想過,那些處理非常複雜問題的程式是如何設計出來的呢?例如:Gmail 如何知道一封郵件是否為垃圾郵件?Facebook 如何知道一張相片是否包含人臉? Siri如何聽懂並回答使用者的問題?人類製作出來的Alpha Go為什麼可以比職業棋士還強呢?事實上,這些程式中的演算法並非由人類直接設計,而是由人類寫出讓機器能夠根據資料學習的演算法後,讓機器自動由大量的資料、過去的經驗找出可以處理這些問題的方法,例如:如果我們想讓機器能夠偵測一封郵件是否為垃圾郵件,我們可以讓機器「看過」大量的郵件,並「告知」機器哪些郵件是垃圾郵件、哪些不是,機器便可以利用這些資訊自動去建構出偵測垃圾郵件的模型,當收到新的郵件時,機器便根據所學的模型去偵測它是否為垃圾郵件,而如何設計出讓機器自動學習的演算法就是「機器學習」這個領域在探討的問題。

課程主要內容如下:
http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_map.png

上課方式:
1. 老師以投影片上課,另有助教時間由助教講授作業。
2. 作業:作業共六個,由個人獨立完成。每個作業包含實作和理論兩部分,實作部分需繳交程式碼由助教驗證成果,理論部分需繳交報告並回答指定的問題。
3. 期末專題:二到四人一組,找不到隊友也沒關係,老師可以幫忙配對。老師會準備數個實際的機器學習競賽題目,這些題目都非常具有挑戰性,需要使用多種機器學習技術才能完成,學生可以從中選取一個題目完成。
 

課程目標
本課程旨在介紹機器學習使用者都應該知道的基本機器學習理論、方法和工具,希望透過這門課學生對機器學習的技術可以有系統性的認識,並具備實作這些技術的基本能力,以期在未來能將這些技術活用到各自的專業領域中。 
課程要求
先修課程:需要具備基本的程式設計與數學能力。在程式能力方面,修習過計算機程式的學生即具備修習本課程所需的基本程式能力,但如果熟悉 python 的話,作業、專題進行會較順利;在數學能力方面,修習過微積分、機率、統計相關課程即具備修習本課程所需的基本數學能力。理論上,電機系大三以上的學生就有能力修習本課程。

加簽方式:第一次上課會公告作業0,想要加簽的同學請於當天晚上繳交作業0,正確無誤即獲得加簽資格。作業0 非常簡單,只是為了確定有基礎程式能力,和機器學習無關。
 
預期每週課後學習時數
 
Office Hours
 
指定閱讀
待補 
參考書目
本課程無指定教科書。參考書目如下:
Introduction to Machine Learning, second edition, Ethem Alpaydin
Pattern Recognition and Machine Learning, Christopher M. Bishop
Learning from Data, Yaser S. Abu-Mostafa , Malik Magdon-Ismail, Hsuan-Tien Lin
 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
作業 
60% 
--- 實作部分: ----- 程式碼:程式碼符合指定格式可以順利執行即得滿分,如格式錯誤經助教要求修改後才能執行會被扣分 ----- 執行結果:程式碼執行結果達到指定的正確率即得到滿分,未達指定正確率按和指定正確率的差距扣分 ----- 課堂內競賽成績:同學上傳程式執行結果到競賽專用平台 Kaggle,可以即時得知成果,並可得知在班級中的排名,根據排名給予分數。課堂內競賽成績優異的同學會被邀請在課堂上發表,會有額外的加分。課堂內競賽視同考試,嚴禁任何作弊行為,例如:在機器學習過程中使用禁止使用的資料,如測試資料(視同考試攜帶小抄)、註冊多重分身參加比賽(視同考試請人代考) --- 理論部分: ----- 回答指定問題 ----- 自由發揮,例如同學可以比較不同的機器學習方法做深入的分析。  
2. 
期末專題 
40% 
同作業 
 
課程進度
週次
日期
單元主題
第1週
2/23  Basic Concepts of Machine Learning  
第2週
3/02  Regression, 公告作業一 
第3週
3/09  Classification  
第4週
3/16  Classification 
第5週
3/23  Deep Neural Network, 公告作業二, 繳交作業一  
第6週
3/30  Convolutional Neural Network 
第7週
4/06  Unsupervised Learning: Linear Models, 公告作業三, 繳交作業二 
第8週
4/13  Unsupervised Learning: Auto-encoder 
第9週
4/20  Unsupervised Learning: Generative Model (期中考週) 
第10週
4/27  Semisupervied Learning, 公告作業四  
第11週
5/04  Transfer Learning, 公告期末專題, 繳交作業三  
第12週
5/11  Beyond Classification: Recurrent Neural Network, 公告作業五, 繳交作業四 
第13週
5/18  Beyond Classification: Structured Learning I 
第14週
5/25  Beyond Classification: Structured Learning II, 公告作業六, 繳交作業五  
第15週
6/01  Learning in the Real World: Reinforcement Learning 
第16週
6/08  Learning Theory, 繳交作業六 
第17週
6/15  TBD 
第18週
6/22  期末競賽成果展示